[アップデート] Amazon EMR Amazon S3 Express One Zone でデータ処理と分析を加速する #AWSreInvent
データアナリティクス事業本部のコンサルティングチームの石川です。
本日より、Amazon EMRは、Amazon S3 Express One Zoneストレージクラスに保存されたデータでクエリを高速化できるようになりました。
Amazon S3 Express One Zoneって何、なぜ速いのか?
Amazon S3 Express One Zoneは、S3 Standardストレージクラスよりも最大10倍優れたパフォーマンス、一貫した1桁ミリ秒のレイテンシで毎秒数十万のリクエストを処理するように設計された新しいS3ストレージクラスです。オブジェクトは単一のAWSアベイラビリティゾーン内の専用ハードウェア上に保存、複製されます。リクエスト料金はS3 Standardストレージクラスよりも50%安く、保存は7倍高いです。
一方、単一のアベイラビリティゾーンに保存されているため、アベイラビリティゾーンの全体または一部が消失または損傷した場合、データを失う可能性がある点は注意が必要です。しかし、これらの事象を除けば、独立したディスクやホスト、ラックレベルの障害からデータを保護するために、リージョナルストレージクラスと同等のエンジニアリング設計が採用されており、99.999999999%(イレブンナイン)のデータ耐久性を実現していると説明されています。
つまり、ストレージが速いから、EMRのクエリも速くなるということです。
EMRのクエリは、どれくらい速くなる?
S3 Express One Zoneは、最も頻繁にアクセスされるデータや遅延に敏感なアプリケーションに対して、一貫した1桁ミリ秒のデータアクセスを提供することを目的として構築された、高性能の単一アベイラビリティゾーンストレージクラスです。
Amazon EMR と Amazon S3 Express One Zone ストレージクラスに保存されたデータ使用して、S3 Standardよりも最大4.0倍高速なクエリパフォーマンスの改善されると説明されています。
データレイクの更新に必要なジョブの完了時間や、BIダッシュボードのレポートに高速なレスポンスタイムが必要な場合など、サービスレベル契約(SLA)が設定されたパフォーマンスクリティカルなワークロードがある場合は、EC2クラスタ上でEMR Sparkアプリケーションを実行する際にS3 Express One Zoneを使用する。
この高速なクエリを利用するには
S3 Express One Zoneが利用可能なAWSリージョンのAmazon EMR リリース 6.15.0 で利用できます。前提条件として、S3Aコネクタを使用し、S3A コネクタが API を呼び出せるようにIAM ポリシーで権限を許可する必要があります 。
データを S3 Express One Zone ストレージに移動し、Spark コードでS3aコネクタを使用してデータの読み取りと書き込みを行います。S3aは、EMRがS3 オブジェクトのS3 Express One Zone バケットを処理するためのコネクタです。
考慮事項
Amazon EMR の Apache Spark を S3 Express One Zone ストレージ クラスと統合する場合は、次の点を考慮してください。
- Amazon S3 Express One Zoneは、Amazon EMR リリース 6.15.0 以降でサポートされています。
- Amazon EMR で S3 Express One Zone を使用するには、S3A コネクタが必要です。
- Amazon S3 Express One Zone ストレージ クラスは、Amazon EC2 上で実行される Amazon EMR クラスター上の Spark でのみサポートされます。
- S3 Express One Zone ストレージ クラスは、Amazon EMR Serverlessまたは EKS 上の Amazon EMR ではサポートされていません。
最後に
「単一のアベイラビリティゾーンに保存されているため、アベイラビリティゾーンの全体または一部が消失または損傷した場合、データを失う可能性がある点は注意が必要」という点は、若干怖いなと感じてしまいます。データソースは、S3 Standardストレージクラスを利用、Spark Submitしてクラスタを終了させるようなユースケースであれば、それほどリスクが無く恩恵が大きそうです。ビッグデータのボトルネックは、いつの時代もIOなので、ご検討いただければ幸いです。